home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
gnu
/
mtools.lha
/
mtools-2.0.7
/
is_dir.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-09-10
|
907b
|
48 lines
/*
* Test to see if a filename is a directory. Subdir() has to be called
* on the directory above this one first... Returns 1 if true.
*/
#include <stdio.h>
#include "msdos.h"
extern int dir_entries;
int
is_dir(path)
char *path;
{
register int entry;
char *newname, *unix_name();
struct directory *dir, *dir_read();
/* no path */
if (*path == '\0')
return(0);
for (entry = 0; entry < dir_entries; entry++) {
dir = dir_read(entry);
/* if empty */
if (dir->name[0] == 0x0)
break;
/* if erased */
if (dir->name[0] == 0xe5)
continue;
/* skip if not a directory */
if (!(dir->attr & 0x10))
continue;
newname = unix_name(dir->name, dir->ext);
if (match(newname, path))
return(1);
}
/*
* If the file is "." or ".." but it fails to match, then you
* must be at root
*/
if (!strcmp(path, ".") || !strcmp(path, ".."))
return(1);
return(0);
}